Accelerator handles

ABSTRACT

A method and apparatus is described to control velocity of object movement in a display device. A path is provided that the object will follow in the display. A plurality of handles are provided along the path and a velocity of the object is controlled by using the handles.

BACKGROUND

I. Field of the Invention

The present invention relates to video editing. In particular, thepresent invention relates to object movement in a display device.

II. Related Art

Editing is generally the art of making subtle adjustments to a materialor materials in a form that communicates a message to be conveyed withmaximum impact. In the area of video editing, the editor defines andshapes images and/or audio until the message to be delivered isaccomplished. Generally, video editing may be divided into twocategories: linear video editing and non-linear video editing. In linearvideo editing, the images are taken in a sequential order. Stateddifferently, one idea after another must be previously conceived andthen, the videos are taken in the conceived chronological sequence. Forexample, suppose a videotape is to be taken of an office, the editormust first conceptualize as to what the scenes would be and in whichsequence. The editor may want to take a video of an entry into theOffice. This scene perhaps followed by a focus on a pot plant in acorner. The scene may then move to the various articles on a desk andthen, the scene shifting its focus to a window. In linear video editing,these are the precise sequences that the video must be taken.

By contrast, in non-linear video editing, scenes may be taken in anyorder and later edited according to a desired sequence. Whether linearvideo editing or non-linear video editing approach is to be takengenerally depends on the video system that is to be used. Whilenon-linear video editing system may be more complicated, the advantageis that images may be taken in any sequence and later, through carefulobservation of the images and a thoughtful process, the images may bemanipulated to communicate the message in the manner the editor wishesto convey with maximum impact. Due to its free format, the editor canreadily impute creativity without being constrained physically.

With the advancement of computer technology, further improvements havebeen made to the video editing system through a process calleddigitization. In particular, digitization of images have had a profoundimpact on non-linear video editing system. Previously, copies of a filmcontaining the images would be made. By cutting and splicing the copies,an edited version of the original film is made. If the editor was notsatisfied, further copies of the original film were made and the cuttingand splicing would resume until a desired product was obtained. In adigital video editing system, images are stored in an electronic mediumsuch as magnetic discs or laser discs thereby allowing the images to beretrieved randomly and displayed on a display device such as a monitor.This alleviates the burdensome technique of cutting and splicing.Further, in random access, each image operates independently, thus, itis possible to retrieve particular images without sequentially goingthrough other materials to reach those images. Examples of sequentialaccess would be films or magnetic tapes. By allowing images to beaccessed randomly, images may be easily manipulated into any desiredsequence which is the heart of a non-linear editing system.

In many instances of video editing, messages can be enhanced by usingspecial effects. For example, a digital video system may allow asequence of images or a still image in a frame that occupies a portionof a display to move within a display. Another example of specialeffects may be the zooming in and out of images. These digital videoeffects previously required sophisticated processing and thus, werehandled at offsite laboratories. However, with the advent of powerfulprocessors, special effects may be easily performed within the videoediting system itself. As digital editing systems become more and moresophisticated, more capabilities and functions are incorporated withinthe systems. This in turn equates to more and more complicated digitalprocessing techniques becoming available to the editor. However, if aspecial effect requires too much effort on the part of the editor to usethe feature, too much effort is put into creating the feature ratherthan editing the feature. Generally, this causes the editor to becomeinefficient in editing the images. More likely, the editor will not usethose special effects which are burdensome.

Accordingly, it is desirable to make a video editing system that is easyto use and does not burden the editor. One method to achieve this is thegraphic user interface (GUI). An excellent GUI may be one that isintuitive and arranged in such a manner that is easily comprehensible byvisually looking at the screen. Stated differently, the editor, bylooking at the screen should know how the feature operates rather thanreferring to a manual every time a feature is to be used. Turning backto a special effect feature described above, in a video editing system,having sequence of images or still image that occupies a portion of thescreen to move within a display device is a desirable feature that aneditor may want to use to emphasize a message, for example. To go onestep further, the sequence of images or still image may be moving alonga path within another sequence of images or still image. The movementmay be further enhanced by controlling the velocity in which thesequence of images or still image is moving across the display.

In one method, a window corresponding to the path of the moving sequenceof images or still image is opened and provides a feature to control thevelocity along the path. The feature is in a form of a velocity graphfrom which the editor calculates the various velocities along the path.In using the velocity graph, because the editor has to calculate thevarious velocities, it is rather complicated and may deter the editorfrom using the feature. Further, the editor may have to search thedisplay to find an icon that opens the velocity graph window. Generally,when the editor is editing a sequence of images on the display, theeditor may have opened several windows to edit the images. By openingthe velocity graph window, the editor may have to shrink the window witha work product to accommodate the velocity graph window. By shrinkingthe work product window, the editor may not clearly observe what isoccurring in the work product window thereby producing an undesirablework product. Therefore, it is desirable to allow the editor tomanipulate the velocity of a moving sequence of images or a still imagewith ease and without cluttering the display of the video editingsystem.

SUMMARY

A method and apparatus is described that to controls velocity of objectmovement in a display device. A path is provided that the object willfollow in the display. A plurality of handles are provided along thepath and a velocity of the object is controlled by using the handles.

Other features and advantages of the present invention will be apparentfrom the accompanying drawings and detailed description to be followed.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention is illustrated by way of examples and not aslimitations in the figures of the accompanying drawings in which:

FIG. 1 a is a diagram of a computer system that may contain anembodiment of the invention;

FIG. 1 b is a diagram of a storage medium that may contain an embodimentof the invention;

FIG. 2 is a diagram of a Graphics User Interface (GUI);

FIG. 3 illustrates a path with accelerator handles according to anembodiment of the invention;

FIG. 4 illustrates a changed path shape according to one embodiment ofthe invention;

FIG. 5 illustrates a changed velocity in the path by manipulating theaccelerator handles according to one embodiment of the invention;

FIGS. 6–8 illustrate another example of changing velocity in the pathusing accelerator handles according to one embodiment of the invention;and

FIG. 9 illustrate another example of changing velocity according toanother embodiment of the invention.

DETAILED DESCRIPTION

FIG. 1 a is an example of a computer system 100 in which an embodimentof the invention may be incorporated. The computer system 100 maycomprise a processor 101 coupled to a main memory 105 via a bus 103. Themain memory 105 may be dynamic random access memories (DRAMs) or othersuitable memories. Data and instructions may be stored in main memory105 which are processed by the processor 101. Generally, coupled to thebus 103 may be a read only memory (ROM) that may store basicinput/output (I/O) instructions (BIOS) and various controllers such asmemory management unit (MMU), interrupt controller, video controller,direct memory access controller (DMA) and input/output (I/O) controller,among others, all which are not shown in the figure. Further coupled tothe bus 103 may be an I/O interface 107 through which various I/Odevices may be coupled. Examples of I/O devices may be mass storagedevices 111 such as magnetic disc drives and/or optical disc drives, analphanumeric input device 113 such as a keyboard, a cursor controldevice 117 such as a mouse or a trackball, a display device 119 such asa monitor or a liquid crystal display (LCD), a printer device 121 suchas a printer, a communication device 123 such as a modem and a networkinterface device 125 such as ethernet.

The computer system 100 described above is readily availablecommercially. Preferably, The computer system 100 be one of theMacintosh® family of personal computers such as the Macintosh® Quadra™,Macintosh® Performa™, PowerMac® brand personal computers manufactured byApple Computer®, Inc. of Cupertino, Calif. The processor can be one ofthe Power PC family of microprocessors such as the 604 or G3 PowerPC®such as those manufactured by Motorola®, Inc. of Schaumburg, Ill.However, other systems and processors may be used. Generally, thepresent invention may be stored in a mass storage device 111 or astorage disc 112, which may be magnetic or optical, until such time theprocessor 101 retrieves from storage and down loads into the main memory105 for processing. FIG. 1 b is an example of a storage medium 150 whichmay be random access memory (RAM), hard disk, compact disc and/ormagnetic disc, among others. The storage medium 150 may comprise handleidentifiers 151 that provide control of object movements; objectrepresentations 153 that are to be moved under the control of thehandles; and software 155 which manipulates representations of objectunder control of handles. Further details of these features will bedescribed with respect to FIGS. 3–9. Processor 101 processes the dataand instructions from the main memory 105. Command selections andinformation to direct the flow of data and instructions to the processor101 may be performed by a user via the alphanumeric device 113 and/orcursor control device 117 or voice recognition. The results may bedisplayed on a display device 119.

FIG. 2 is an example of a graphics user interface (GUI) 200 that may beused with an embodiment of the invention. However, other user interfacesmay be used according to a desired result by the designer. The GUI 200is displayed on a display device 119 (See FIG. 1 a) and aids the user incontrolling the flow of data and instructions to the processor 101.Typically, the GUI 200 may comprise a plurality of windows, some whichmay be opened by the processor 101 according to data and instructionsand some which may be opened by the user. The figure illustrates threewindows 201, 203, 205 that are opened. As an example, in a video editingsystem, window 201 may display an object that is to move on a pathwithin the display. The object may be a sequence of images, a stillimage, alphanumeric characters or a design, both animation or real,created by the user. Window 205 may display an editing panel 207 that isconfigured to edit the various objects displayed in window 201. Forexample, the editing panel 207 may have various controls that allow theuser to cut and paste various images to form a sequence of images.Another set of controls, for example, may control the time duration ofthe sequence of images to be edited. Yet another set of controls, forexample, may control an audio sound corresponding to the images.Generally, the editing panel 207 will provide various controls that thedesigner believes would be useful to the user in editing the variousimages. Window 203 may display an object in which the object in window201 may move within, for example. As an example, window 203 may displaya sequence of images or still image in which the images in window 201that are contained in a frame will move along a path in window 203. Thisfeature will be further described with respect to FIG. 3.

GUI 200 may further include a palette of icons 209 that may control thevarious features of the video editing system. Within the palette 209 maybe a plurality of icons 211 where when an icon is activated, a newfeature may be introduced into the video editing system. Typically, theactivation of the various icons 211 in the icon palette 209, themanipulation of various controls in the editing panel 207 and theediting within the various windows may be performed by a pointing arrow213. The pointing arrow 213 may be operated by the user through the I/Odevice such as the cursor control device 117 (e.g. a mouse or trackball)or the alphanumeric device 113 or by speech recognition. To demonstratean operation of the GUI using the mouse as an example, if a duration ofa video is to be cut, the mouse may be mobilized on a surface that inturn moves the pointing arrow 213. When the pointing arrow 213 reaches acontrol on the editing panel 207 that controls the cutting of videosequences, several clicks of a button located on the mouse may cut avideo sequence. To store the video sequence that has been cut, thepointing arrow 213 may be mobilized once more until it reaches a storeicon in the icon palette 209. With a click of a button on the mouse, thevideo sequence may be stored in a mass storage device 111 to beretrieved when the user requires it.

FIG. 3 illustrates a path 300 drawn on a display device 119 (see FIG. 1a) in which an object 301 may move according to one embodiment of theinvention. The object 301 may be contained in a frame 303 asillustrated. In one example, object 301 and frame 303 may be movingwithin another frame 309 containing another object 307. The objects maybe still image or may be a sequence of images. Note that object movementmay not be limited to one object. For example, the frame 303 of object301 may be moving in the frame 309 of object 307 and the frame 309 maybe moving in another frame of another object (not shown) and so forth.Located at intervals along the path 300 are a plurality of “acceleratorhandles” 305 that determine the velocity of object 301 moving along thepath 300. In one embodiment, the spacings between the acceleratorhandles may represent the speed control of the object 301.Alternatively, the size or color or other signal attribute may representthe speed control. The setup criteria of the path 300 may be initializedby the user or may be automatically initialized by the processor 101according to data and instructions stored in the main memory 105. Thesetup criteria may comprise a length of the path, a number ofaccelerator handles, spacing between the accelerator handles, and thevelocity between the accelerated handles, among others. Generally,during setup, the spacings between the accelerator may be equal andthus, only one velocity may be designated. In the event it is processordetermined, the user may further adjust the setup criteria using thecursor control device 117 or the alphanumeric device 113 or by speechrecognition.

In one embodiment, the editing panel 207 (see FIG. 2) may includecontrols that allow the adjustment of the length of the path and thenumber of accelerator handles and/or velocity between spacing. Using themouse as an example, the pointing arrow 213, controlled by the mouse,may be moved until it reaches the appropriate controls in the editingpanel 207. By manipulating the controls, appropriate adjustments may bemade.

In another embodiment, adjustments may be made directly on the path andthe accelerator handles themselves. Again, using the mouse as anexample, the pointing arrow 213 may be moved until it is at or near atip of the path 300. By holding down the button on the mouse; “dragging”the tip of the path 300 to another location; and releasing the button,the length or perhaps, even the position of the path, may be adjusted.Regarding the number of accelerator handles, the numbers may be changedby moving the pointing arrow 213 until the pointing arrow 213 is locatedon or near the path 300. By clicking the button on the mouse, the numberof accelerator handles may be increased by one or other predeterminednumber. Accelerator handles may be decreased by causing the pointingarrow 213 to be located on or near an accelerator handle; holding downthe button on the mouse; and dragging the accelerator handle to a “trashcan”. Alternatively, the accelerator handle may be deleted by doubleclicking the button on the mouse, for example. Regarding velocity, withthe pointing arrow 213 on a spacing between two accelerator handles orthe handle itself, a double click of the button on the mouse may open upa dialog box. The velocity may be entered in the dialog box using thealphanumeric device 113 or speech recognition, for example.

FIG. 4 illustrates how path 300 may be changed. For example, using thepointing arrow 213 which may be controlled by a mouse, the user may movethe pointing arrow 213, to a desired location on or near the path 300.By holding the button down on the mouse and moving the mouse, the pathmay be dragged from its original shape 300 to a new shape 400. Once adesired shape of the path is obtained, the release of the button fixesthe shape of the path. In this example, the straight path 300 has beenchanged to form a curved path 400. Note that the length of the path 400may be longer than the length of the path 300. Because of the change inthe length of the path, the accelerator handles 305 may shift from itsoriginal position to a new position (shown as accelerator handles 405)where the accelerator handles maintain equal spacing relative to eachother. Thus, when adjustment to the length of the path or the number ofaccelerator handles is made, the accelerator handle positionsautomatically readjust to accommodate the adjusted path length or thechange in number of accelerator handles. Other approaches may be takenwhen the length of the path is adjusted or the number of acceleratorhandles change.

FIG. 5 illustrates an example of a position of accelerator handles 505that have been changed to produce an object movement of differentvelocities along the path 500. In one embodiment, the pointing arrow 213may be used by placing the arrow on or near a desired point in the pathto effectuate the movement of the accelerator handles. For example, byholding down the button on the mouse and moving the arrow 213 in thedirection in which a slower velocity is desired, the action will causethe accelerator handles to compress with respect to each other such thatthe spacings between the accelerator handles become shorter. For theaccelerator handles on the opposite side of the pointing arrow, thespacing between accelerator handles increase to accommodate the increaseof the path in the region. This aspect is illustrated in FIG. 5.

The change in velocity may be determined by the change in spacingbetween two accelerator handles in relation to its previous spacing.Stated differently, where the spacing between two accelerator handles iscloser compared to previously, the object may move at a slower ratebetween those two accelerator handles. If the spacing between the twoaccelerator handles is wider than previously, the object may move at afaster rate. Of course, the relationship between the velocity and thespacings between the accelerator handles described above is one examplethat may be chosen by the designer. For example, one may design suchthat if the spacing between the two accelerator handles is closer, theobject moves at a fast rate and if the space between the two acceleratorhandles is wider, the object moves at a slow rate.

According to one example, to provide for a non-linear adjustment ofchanges in the spacings between the accelerator handles 505 as toprovide a smooth acceleration path, the spacings may be changedaccording a mathematical formula. For example, using a logarithmicformula, where the length of a spacing has changed, the remainingposition of the accelerator handles may change logarithmically using thechanged spacing as a reference, for example. The logarithmic positioningof the accelerator handles 505 is illustrated in FIG. 5. FIG. 5 furtherillustrates the object 301 descending along the path 500. In the initialdescent, the object may move at a slow velocity. As the object descendsfurther, the object may accelerate. During the last moment of descent,the object may be at its fastest velocity.

FIGS. 6–8 illustrate another example that may be used in controlling avelocity of an object on a path. According to one embodiment, at theinitial stage, the spacings between the accelerator handles may beequal. To change velocity in the path 600, the arrow 213 may be moved toan accelerator handle 605 on the path 600 in which a change in velocityis desired. In one example, a click of a button on the mouse will causea bar or a plurality of bars 601, 602 to appear. In the case of aplurality of bars, for example, two bars, according to one embodiment,the right bar 601 may control the velocity of the path 600 on the rightside of the accelerator handle 605 and the left bar 602 may control thepath 600 on the left side of the accelerator handle 605. In one example,an adjustment of velocity using one bar may be mirrored on the otherbar. In another example, an adjustment of velocity on the bars may beseparately manipulated.

One bar will be used as an example to illustrate the feature of the bar.Centered at or near to the center of the bar 601 may be a point 603 thatmay be used to control the velocity of the object moving in the path600. Note that other point positioning may be used such as placing thepoint at one end of the bar, Turning back to the previous example, atits initial center or near center position, there may be no change invelocity. This position is termed center position. Using the arrow 213,the position of the point 603 on the bar 601 may be moved to effectuatechange in the velocity. Referring to FIG. 7, according to one example,when the point 603 is moved in the direction of the accelerator handle605, the other accelerator handles in the vicinity may move closer tothe accelerator handle 605 according to a mathematical formula. Theclosest the point 603 may move in the direction of the acceleratorhandle 605 on the bar 601 is termed the minimum position. Referring toFIG. 8, according to one example, when the point 603 is moved away fromthe direction of the accelerator handle 605, the other acceleratorhandles in the vicinity may move further apart from the acceleratorhandle according to a mathematical formula. The farthest the point 603may move away from the direction of the accelerator handle 605 on thebar 601 is termed the maximum position.

According to one embodiment, the algorithm for adjusting the spacingsbetween the handles according to the movement of the point in the barmay be expressed as:scale=1.0+(10^((handleValue))−1.0)*(1.0−(k/kNumsteps))⁸

-   -   Where “scale” is the resulting contribution for the handle being        computed;    -   “handlevalue” is the value of the point position on the bar in        the range of −1 to +1 where −1 is the minimum position of the        point, 0 is the center position, and +1 is the maximum position        of the point;    -   “k” is the index of the handles being calculated starting with 0        which may be the handle selected for velocity change and ending        with a handle at the end of a path segment, in which the index        may be different for the right segment path and the left segment        path; and    -   “kNumSteps” is the total number of subsegments between handles        indexed in a segment path.

Note that the algorithm may be adjusted to fit the circumstances inwhich it is to be used. For example, the power base 10 of thehandleValue may be a different base power or the power to the eighth inthe algorithm may be a different power. Such adjustments may be madeaccording to a desired result. In another example, as illustrated inFIG. 9, where a segment path 900 is affected by two handles A, B, thealgorithm may be modified to be:Handle A: scale=1.0+(10^((handleValue A))−1.0)*(1.0−(2k/kNumSteps))⁸Handle B: scale=1.0+(10^((handleValue B))−1.0)*((2k/kNumSteps)−1.0)⁸

-   -   where handle A affects one half of the segment between handle A        and handle B, and handle B affects the other one half of the        segment. The handlevalue A may be the value on the right bar        (see FIG. 6) of handle A and handleValue B may be the value on        the left bar of handle B. For the algorithm of handle A, k may        range from 0 to 5 and for the algorithm of handle B, k may range        from 6 to 10; and kNumSteps may be 10 (see FIG. 9).

In the foregoing specification, the invention has been described withreference to specific embodiments thereof. It will, however, be evidentthat various modifications and changes can be made thereto withoutdeparting from the broader spirit and scope of the invention as setforth in the appended claims. The specification and drawings areaccordingly, to be regarded in an illustrative rather than a restrictivesense.

1. A method comprising: generating a path on a display upon which anobject will follow when activated, the path including a plurality ofsegments formed by a plurality of handles; and controlling a velocity ofsaid object moving on said path by manipulating at least one of theplurality of handles, wherein an attribute representing a relationshipbetween two adjacent handles determines a velocity of the object movingalong a segment of the path formed between the two adjacent handles,wherein controlling said velocity using said handles further comprisesadjusting a space between at least two adjacent handles wherein anamount of the space along a segment between the at least two adjacenthandles at least partially determines the velocity of the object movingalong the segment of the at least two adjacent handles, whereinadjusting said space between said handles is performed by moving ahandle to a different position on said path via a drag and dropoperation.
 2. The method of claim 1, further comprising adjusting ashape of the path to accommodate the different position of the handleaccording to a mathematical formula, in response to moving the handle tothe different position.
 3. The method of claim 2, further comprisingautomatically adjusting a number of handles along the path in responseto adjusting the shape of the path to allow a space between two adjacenthandles of the path to remain substantially identical with respect to anumber of handles prior to adjusting the shape.
 4. The method of claim1, wherein moving said handle causes remaining handles to automaticallyadjust their spacing with adjacent handles according to a mathematicalformula.
 5. The method of claim 1, wherein adjusting said space betweensaid handles further comprises: in response to an input received from anactivated handle, displaying a bar associated with the activated handle,the bar having at least one point; and manipulating a position of the atleast one point to cause a space between remaining handles to adjustwith respect to the activated handle according to a mathematicalformula.
 6. The method of claim 5, wherein the bar is displayed within aproximity of the activated handle and is referenced to the activatedhandle.
 7. The method of claim 5, wherein a segment of the bar definedby a first point and a second point is associated with a segment of thepath having at least two handles, including the activated handle, andwherein manipulating a space between the first and second points on thebar changes a space between one of the at least two handles and theactivated handle.
 8. The method of claim 7, wherein a space of aremainder of the at least two handles is automatically adjustedaccording to a mathematical formula.
 9. The method of claim 7, wherein aspace between at least two remaining handles of the path other than thesegment of the bar defined by the bar is automatically adjusted.
 10. Themethod of claim 7, wherein a space between two adjacent handles withinthe segment of the path associated with the first and second points ofthe bar is substantially identical.
 11. The method of claim 10, whereinthe space between two adjacent handles within the segment of the bar isdifferent than a space between at least two adjacent handles outside ofthe segment defined by the bar.
 12. The method of claim 1, whereincontrolling the velocity of the object comprising adjusting a color ofat least a segment formed by two adjacent handles, and wherein differentcolors at least partially represent different velocities of the objectmoving along the at least one segment between the two adjacent handles.13. The method of claim 1, wherein controlling the velocity of theobject comprising adjusting a size of at least one handle, and whereindifferent sizes of the at least one handle at least partially representdifferent velocities of the object moving along a segment between twoadjacent handles having different sizes.
 14. The method of claim 1,further comprising adding an additional handle to the path in responseto an input received via doubling clicking within a proximity of thepath.
 15. The method of claim 1, further comprising removing a handlefrom the path by dragging and dropping the handle being removed to agraphical representation representing a trash can or a recycle bin. 16.The method of claim 1, further comprising, in response to an inputreceived by activating a segment of the path between two adjacenthandles, displaying a graphical user interface (GUI) to allow a user tospecify a velocity of the object moving along the activated segment ofthe path.
 17. An apparatus comprising: means for generating a path on adisplay upon which an object will follow when activated, the pathincluding a plurality of segments formed by a plurality of handles; andmeans for controlling a velocity of said object moving on said path bymanipulating at least one of the plurality of handles, wherein anattribute representing a relationship between two adjacent handlesdetermines a velocity of the object moving along a segment of the pathformed between the two adjacent handles, wherein means for controllingsaid velocity using said handles further comprises means for adjusting aspace between at least two adjacent handles wherein an amount of thespace along a segment between the at least two adjacent handles at leastpartially determines the velocity of the object moving along the segmentof the at least two adjacent handles, wherein said means for adjustingsaid space between said handles includes means for moving a handle to adifferent position on said path via a drag and drop operation.
 18. Theapparatus of claim 17, wherein said means for moving said handle furthercomprises means for causing remaining handles to automatically adjusttheir spacing with adjacent handles according to a mathematical formula.19. The apparatus of claim 17, wherein said means for adjusting saidspace between said handles further comprises: in response to an inputreceived from an activated handle, means for displaying a bar associatedwith the activated handle, the bar having at least one point; and meansfor manipulating a position of the at least one point to cause a spacebetween remaining handles to adjust with respect to the activated handleaccording to a mathematical formula.
 20. A data processing system,comprising: a processor; and a memory for storing instructions, whenexecuted from the memory, cause the processor to perform operations, theoperation including generating a path on a display upon which an objectwill follow when activated, the path including a plurality of segmentsformed by a plurality of handles; and controlling a velocity of theobject moving on the path by manipulating at least one of the pluralityof handles, wherein an attribute representing a relationship between twoadjacent handles determines a velocity of the object moving along asegment of the path formed between the two adjacent handles, whereincontrolling the velocity further comprises adjusting a space between atleast two adjacent handles wherein an amount of the space along asegment between the at least two adjacent handles at least partiallydetermines the velocity of the object moving along the segment of the atleast two adjacent handles, wherein the operations further comprisemoving a handle to a different position on said path via a drag and dropoperation.
 21. The system of claim 20, wherein moving the handle causesremaining handles to automatically adjust their spacing with adjacenthandles according to a mathematical formula.
 22. The system of claim 20,wherein adjusting the space between the handles further comprises: inresponse to an input received from an activated handle, displaying a barassociated with the activated handle, the bar having at least one point;and manipulating a position of the at least one point to cause a spacebetween remaining handles to adjust with respect to the activated handleaccording to a mathematical formula.
 23. A machine readable mediumhaving stored thereon data representing sequences of instructions, whichwhen executed by a computer system, cause said computer system toperform a method comprising: generating a path on a display upon whichan object will follow when activated, the path including a plurality ofsegments formed by a plurality of handles; and controlling a velocity ofthe object moving on the path by manipulating at least one of theplurality of handles, wherein an attribute representing a relationshipbetween two adjacent handles determines a velocity of the object movingalong a segment of the path formed between the two adjacent handles,wherein controlling said velocity comprises adjusting a space between atleast two adjacent handles wherein an amount of the space along asegment between the at least two adjacent handles at least partiallydetermines the velocity of the object moving along the segment of the atleast two adjacent handles, wherein adjusting a space between saidhandles is performed when a handle is moved to a different position onsaid path via a drag and drop operation.
 24. The machine readable mediumof claim 23, wherein moving said handles causes remaining handles toautomatically adjust their spacing with adjacent handles according to amathematical formula.
 25. The machine readable medium of claim 23,wherein adjusting said space between said handles further comprises: inresponse to an input received from an activated handle, displaying a barassociated with the activated handle, the bar having at least one point;and manipulating a position of the at least one point to cause a spacebetween remaining handles to adjust with respect to the activated handleaccording to a mathematical formula.